package _3sort.src;

public class _7countSort_sehngji1 {
    public static void main(String[] args) {
        int[] nums = {6, 5, 48, 42, 23, 4, 5};
        SortFunction(nums);
        for (int num : nums) {
            System.out.println(num);
        }
    }
//为了节省空间，创造出一个数组长度可以简单判定的数组
    public static void SortFunction(int[] nums) {
        int max = nums[0];
        int min = nums[0];
        //找出其中的最大值
        for (int num : nums) {
            max = Math.max(max, num);
            min = Math.min(min, num);
        }
        //创建一个相关的数组
        int[] maxCountArray = new int[max - min + 1];
        //遍历原始数组，进行新数组的遍历增值
        for (int num : nums) {
            maxCountArray[num-min]++;
        }
        //遍历新数组
        int index=0;
        for (int i = 0; i < maxCountArray.length; i++) {
            for (int j = 0; j < maxCountArray[i]; j++) {
                nums[index++] = i+min;
            }
        }
    }
}
